ফাইল ম্যানেজমেন্ট এবং স্টোরেজ

Web Development - এএসপি ডট (ASP.Net) - ফাইল আপলোড এবং ডাউনলোড |

ASP.Net অ্যাপ্লিকেশনগুলিতে ফাইল ম্যানেজমেন্ট এবং স্টোরেজ একটি গুরুত্বপূর্ণ কার্যকারিতা, বিশেষ করে যখন অ্যাপ্লিকেশনে ব্যবহারকারীর আপলোড করা ফাইলগুলো সংরক্ষণ এবং পরিচালনা করতে হয়। ASP.Net আপনাকে ফাইল আপলোড, ডাউনলোড, ডিলিট, রেনেম, এবং ফাইলের পাথ সম্পর্কিত কাজগুলো সহজভাবে পরিচালনা করার জন্য প্রয়োজনীয় সরঞ্জাম প্রদান করে। এটি সাধারণত ফাইল সিস্টেমে কাজ করতে অথবা ক্লাউড স্টোরেজ যেমন Azure Blob Storage ব্যবহার করতে সাহায্য করে।


১. ফাইল আপলোড করা

ASP.Net অ্যাপ্লিকেশনে ফাইল আপলোড করার জন্য সাধারণত IFormFile ব্যবহার করা হয়, যা ব্যবহারকারীর আপলোড করা ফাইলগুলোকে সার্ভারে সংরক্ষণ করতে সহায়তা করে।

ফাইল আপলোডের উদাহরণ:

HTML অংশ:

<form enctype="multipart/form-data" method="post">
    <input type="file" name="uploadedFile" />
    <button type="submit">ফাইল আপলোড করুন</button>
</form>

C# কন্ট্রোলার অংশ:

[HttpPost]
public async Task<IActionResult> UploadFile(IFormFile uploadedFile)
{
    if (uploadedFile != null && uploadedFile.Length > 0)
    {
        var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "uploads", uploadedFile.FileName);

        using (var stream = new FileStream(filePath, FileMode.Create))
        {
            await uploadedFile.CopyToAsync(stream);
        }

        return Content("ফাইল সফলভাবে আপলোড হয়েছে!");
    }
    return Content("ফাইল নির্বাচন করা হয়নি");
}

এখানে, ফাইলটি wwwroot/uploads ডিরেক্টরিতে আপলোড হবে। IFormFile হল ASP.Net Core এর ফাইল আপলোডের জন্য ব্যবহৃত একটি ইন্টারফেস।


২. ফাইল ডাউনলোড করা

ফাইল ডাউনলোড করতে হলে, সার্ভারের কোনো ফাইলকে FileResult রিটার্ন করতে হয়। ASP.Net অ্যাপ্লিকেশন থেকে ফাইল ডাউনলোড করতে ব্যবহারকারীকে একটি URL বা বাটন প্রদান করা হয়, যা ফাইলটি ডাউনলোড করার জন্য সার্ভারে রিকোয়েস্ট পাঠায়।

ফাইল ডাউনলোডের উদাহরণ:

HTML অংশ:

<a href="/Home/DownloadFile/filename.jpg">ফাইল ডাউনলোড করুন</a>

C# কন্ট্রোলার অংশ:

public IActionResult DownloadFile(string fileName)
{
    var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "uploads", fileName);
    var fileBytes = System.IO.File.ReadAllBytes(filePath);
    return File(fileBytes, "application/octet-stream", fileName);
}

এখানে, File() মেথড ফাইলটি নির্দিষ্ট ContentType এবং নাম সহ ডাউনলোড করার জন্য রিটার্ন করে।


৩. ফাইল রেনেম করা এবং মুছে ফেলা

ফাইলের নাম পরিবর্তন বা মুছে ফেলতে System.IO নেমস্পেসের File.Move() এবং File.Delete() মেথড ব্যবহার করা হয়।

ফাইল রেনেম করার উদাহরণ:

public IActionResult RenameFile(string oldFileName, string newFileName)
{
    var oldFilePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "uploads", oldFileName);
    var newFilePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "uploads", newFileName);

    if (System.IO.File.Exists(oldFilePath))
    {
        System.IO.File.Move(oldFilePath, newFilePath);
        return Content("ফাইলের নাম সফলভাবে পরিবর্তন করা হয়েছে!");
    }
    return Content("ফাইল পাওয়া যায়নি");
}

ফাইল মুছে ফেলার উদাহরণ:

public IActionResult DeleteFile(string fileName)
{
    var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "uploads", fileName);

    if (System.IO.File.Exists(filePath))
    {
        System.IO.File.Delete(filePath);
        return Content("ফাইল সফলভাবে মুছে ফেলা হয়েছে!");
    }
    return Content("ফাইল পাওয়া যায়নি");
}

এখানে, File.Move() মেথড ফাইলের নাম পরিবর্তন করতে এবং File.Delete() মেথড ফাইল মুছে ফেলতে ব্যবহৃত হয়েছে।


৪. ফাইল স্টোরেজের বিকল্প: Azure Blob Storage

ASP.Net অ্যাপ্লিকেশন ফাইল আপলোড এবং ডাউনলোডের জন্য শুধু লোকাল ফাইল সিস্টেম নয়, আপনি Azure Blob Storage ব্যবহার করেও ফাইল সংরক্ষণ করতে পারেন। এটি স্কেলেবিলিটি এবং নিরাপত্তা নিশ্চিত করে, কারণ ফাইলগুলি ক্লাউডে সংরক্ষিত থাকে।

Azure Blob Storage ব্যবহার:

  1. Azure Blob Storage NuGet প্যাকেজ ইনস্টল করা:

    Install-Package Azure.Storage.Blobs
    
  2. Blob Storage কনফিগারেশন এবং ফাইল আপলোড:

    Azure স্টোরেজ কনফিগার করার জন্য ConnectionString এবং ContainerName প্রাপ্ত করতে হবে এবং তারপর BlobClient তৈরি করতে হবে।

public async Task<IActionResult> UploadToBlob(IFormFile uploadedFile)
{
    var connectionString = "<your_connection_string>";
    var containerName = "<your_container_name>";
    
    var blobServiceClient = new BlobServiceClient(connectionString);
    var blobContainerClient = blobServiceClient.GetBlobContainerClient(containerName);
    var blobClient = blobContainerClient.GetBlobClient(uploadedFile.FileName);
    
    using (var stream = uploadedFile.OpenReadStream())
    {
        await blobClient.UploadAsync(stream, overwrite: true);
    }

    return Content("ফাইল সফলভাবে Azure Blob Storage-এ আপলোড হয়েছে!");
}

৫. ফাইলের মেটাডেটা (Metadata) পরিচালনা

ASP.Net এ ফাইলের মেটাডেটা (যেমন, ফাইলের আকার, তৈরি তারিখ, এক্সটেনশন) সহজে পরিচালনা করা যায়। এটি সার্ভারে সংরক্ষিত ফাইলের অতিরিক্ত তথ্য সংগ্রহ করতে সাহায্য করে।

ফাইল মেটাডেটা উদাহরণ:

public IActionResult GetFileMetadata(string fileName)
{
    var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "uploads", fileName);
    var fileInfo = new FileInfo(filePath);
    
    var metadata = new
    {
        FileName = fileInfo.Name,
        FileSize = fileInfo.Length,
        CreationTime = fileInfo.CreationTime,
        LastModifiedTime = fileInfo.LastWriteTime
    };

    return Json(metadata);
}

এখানে, FileInfo ক্লাস ব্যবহার করে ফাইলের আকার, তৈরি তারিখ, এবং অন্যান্য মেটাডেটা পাওয়া যাচ্ছে।


সারাংশ

ASP.Net এ ফাইল ম্যানেজমেন্ট এবং স্টোরেজ ব্যবস্থাপনা অত্যন্ত গুরুত্বপূর্ণ, বিশেষ করে ফাইল আপলোড, ডাউনলোড, মুছে ফেলা, রেনেম করা এবং ক্লাউড স্টোরেজ সলিউশন ব্যবহার করার ক্ষেত্রে। আপনি IFormFile দিয়ে ফাইল আপলোড করতে পারেন, System.IO দিয়ে ফাইল ম্যানিপুলেশন করতে পারেন এবং Azure Blob Storage ব্যবহার করে ক্লাউডে ফাইল সংরক্ষণ করতে পারেন। ASP.Net ফ্রেমওয়ার্ক সেগুলোর সবকটিই সহজভাবে পরিচালনা করার জন্য প্রয়োজনীয় সরঞ্জাম সরবরাহ করে।

Content added By
Promotion